﻿//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Linq;

using ProjectBase.Core;

namespace $safeprojectname$.Services.HowTos
{
    /// <summary>Filter container for ComplexEntity Find()</summary>
    [Serializable]
    [CLSCompliant(false)]
    public class ComplexEntityFilter : BaseFilter<long>
    {
        public virtual string CodeExact { get; set; } // exact match
        public virtual string Code { get; set; } // like expression
        public virtual string ShortNameSearch { get; set; } // exact match
        public virtual string ShortName { get; set; } // like expression
        public virtual string VeryLongNameSearch { get; set; } // exact match
        public virtual string VeryLongName { get; set; } // like expression

        public virtual bool ShowMoreCols { get; set; }

        public virtual SimpleEntity SimpleCombo { get; set; }
        public virtual SimpleEntity SimpleAsync { get; set; }
        public virtual SimpleEntity SimpleAuto { get; set; }

        #region bool
        public virtual bool? IsApproved { get; set; }
        public virtual bool? IsSigned { get; set; }
        #endregion bool

        #region ValueTypes From
        public virtual byte? ByteValueFrom { get; set; }
        public virtual sbyte? SByteValueFrom { get; set; }
        public virtual byte? ByteValueNullableFrom { get; set; }
        public virtual sbyte? SByteValueNullableFrom { get; set; }

        public virtual short? ShortValueFrom { get; set; }
        public virtual ushort? UShortValueFrom { get; set; }
        public virtual short? ShortValueNullableFrom { get; set; }
        public virtual ushort? UShortValueNullableFrom { get; set; }

        public virtual int? IntValueFrom { get; set; }
        public virtual uint? UIntValueFrom { get; set; }
        public virtual int? IntValueNullableFrom { get; set; }
        public virtual uint? UIntValueNullableFrom { get; set; }

        public virtual long? LongValueFrom { get; set; }
        public virtual ulong? ULongValueFrom { get; set; }
        public virtual long? LongValueNullableFrom { get; set; }
        public virtual ulong? ULongValueNullableFrom { get; set; }

        public virtual decimal? DecimalValueFrom { get; set; }
        public virtual decimal? DecimalValueNullableFrom { get; set; }

        public virtual float? FloatValueFrom { get; set; }
        public virtual float? FloatValueNullableFrom { get; set; }

        public virtual double? DoubleValueFrom { get; set; }
        public virtual double? DoubleValueNullableFrom { get; set; }

        public virtual DateTime? ValidFromFrom { get; set; }
        public virtual DateTime? ValidToFrom { get; set; }
        #endregion ValueTypes From

        #region ValueTypes To
        public virtual byte? ByteValueTo { get; set; }
        public virtual sbyte? SByteValueTo { get; set; }
        public virtual byte? ByteValueNullableTo { get; set; }
        public virtual sbyte? SByteValueNullableTo { get; set; }

        public virtual short? ShortValueTo { get; set; }
        public virtual ushort? UShortValueTo { get; set; }
        public virtual short? ShortValueNullableTo { get; set; }
        public virtual ushort? UShortValueNullableTo { get; set; }

        public virtual int? IntValueTo { get; set; }
        public virtual uint? UIntValueTo { get; set; }
        public virtual int? IntValueNullableTo { get; set; }
        public virtual uint? UIntValueNullableTo { get; set; }

        public virtual long? LongValueTo { get; set; }
        public virtual ulong? ULongValueTo { get; set; }
        public virtual long? LongValueNullableTo { get; set; }
        public virtual ulong? ULongValueNullableTo { get; set; }

        public virtual decimal? DecimalValueTo { get; set; }
        public virtual decimal? DecimalValueNullableTo { get; set; }

        public virtual float? FloatValueTo { get; set; }
        public virtual float? FloatValueNullableTo { get; set; }

        public virtual double? DoubleValueTo { get; set; }
        public virtual double? DoubleValueNullableTo { get; set; }

        public virtual DateTime? ValidFromTo { get; set; }
        public virtual DateTime? ValidToTo { get; set; }

        #endregion ValueTypes To
    }
}

